Ext.namespace("Nippy.Components.Dialogs");
Nippy.Components.Dialogs.UploadImage = Ext.extend(Ext.Window, {
	constructor: function(config){
		this._params = null;
		if (config!=null){
    		if (config.replace!=null){
    			this._params = {Id: config.replace.Id, SizeId: config.replace.SizeId};
    		}
    	}
		Nippy.Components.Dialogs.UploadImage.superclass.constructor.apply(this, arguments);
    }
    ,initComponent: function(){
    	this.fp = new Ext.FormPanel({
            fileUpload: true,
            /*autoHeight: true,*/
            bodyStyle: 'padding: 10px 10px 0 10px;',
            labelWidth: 100,
            defaultType: 'textfield',
            defaults: {
                anchor: '95%',
                allowBlank: false,
                msgTarget: 'side'
            },
            items: [{
            			name: 'alt',
            			fieldLabel: 'Alt'
            		}
            		,{
            			name: 'title',
            			fieldLabel: 'Title'
            		}
                    ,{
		                xtype: 'fileuploadfield',
		                emptyText: 'Выберите файл',
		                fieldLabel: 'Изображение',
		                name: 'newfile',
		                buttonText: '',
		                buttonCfg: {iconCls: 'upload-icon'}
                    }],
            buttons: [{
                text: 'Загрузить',
                scope: this,
                handler: function(){
                    if(this.fp.getForm().isValid()){
    	                this.fp.getForm().submit({
    	                    url: '/admin/gallery-item/',
    	                    waitMsg: 'Загрузка файла...',
    	                    params: this._params,
    	                    scope: this,
    	                    success: function(f, o){
    	                        /*Ext.Msg.show({
    	                            title: 'Сообщение',
    	                            msg: 'Файл загружен',
    	                            minWidth: 200,
    	                            modal: true,
    	                            icon: Ext.Msg.INFO,
    	                            buttons: Ext.Msg.OK
    	                        });*/
    	                        this.onuploaded(o);
    	                        this.hide();
    	                    },
	    	                failure: function(f, a) {
	    	                        switch (a.failureType) {
	    	                            case Ext.form.Action.CLIENT_INVALID:
	    	                                Ext.Msg.alert('Ошибка', 'В полях формы заданы неверные значения');
	    	                                break;
	    	                            case Ext.form.Action.CONNECT_FAILURE:
	    	                            	Ext.Msg.alert('Ошибка', 'Нет связи с сервером');
	    	                                break;
	    	                            case Ext.form.Action.SERVER_INVALID:
	    	                            	Ext.Msg.alert('Ошибка', 'Ответ сервера: '+a.result.msg);
	    	                            	break;
	    	                       }
	    	                }
    	                });
                    }
                }
            },{
                text: 'Сброс',
                scope: this,
                handler: function(){
                    this.fp.getForm().reset();
            	}
            },{
                text: 'Отмена',
                scope: this,
                handler: function(){
            		this.hide();
                }
            }]
        });
    	
        Ext.apply(this, {
            title: "Загрузка изображения на сервер",
			items: this.fp
		});

        Nippy.Components.Dialogs.UploadImage.superclass.initComponent.apply(this, arguments);
        this.addEvents('onuploaded');
    }
    ,onuploaded: function(r){
		this.fireEvent('onuploaded', this,r);
	}
    ,show: function(){
    	var f = this.fp.getForm();
    	if (arguments.length>0) f.findField('alt').setValue(arguments[0]);
    	if (arguments.length>1) f.findField('title').setValue(arguments[1]);
    	Nippy.Components.Dialogs.UploadImage.superclass.show.call(this,arguments);
    }
});
